% cjkfonts.sty
%
% A XeLaTeX package for typesetting CJK documents.
%
% Options:
% 	default: boolean option, cjkfonts is set as the default font family and as the sans serif family for CJK text.

% Identification
% ==============

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cjkfonts}[2015/12/12 A simple XeLaTeX package to set CJK fonts]


% Required Packages
% =================

\RequirePackage{ifthen}
\RequirePackage{xeCJK}

% Set key-value options
\RequirePackage{kvoptions}
\DeclareBoolOption[false]{default}
\ProcessKeyvalOptions*

%% Configuration for parindent
%% ===========================
\def\elegant@CJKChar@size{\hskip \f@size \p@}
\newdimen\elegant@CJKChar@size@dimen
\settowidth\elegant@CJKChar@size@dimen{\elegant@CJKChar@size\CJKglue}
\setlength{\parindent}{2\elegant@CJKChar@size@dimen}

%% Configuration for fonts
%% =======================

\newCJKfontfamily[NotoSansSC]\NotoSansSC[
  UprightFont=NotoSansCJKsc-Light,
  BoldFont=NotoSansCJKsc-Bold,
  ItalicFont=NotoSansCJKsc-Light,
  BoldItalicFont=NotoSansCJKsc-Bold,
  ItalicFeatures=FakeSlant,
  BoldItalicFeatures=FakeSlant]{NotoSansSC}

\newCJKfontfamily[NotoSansMonoSC]\NotoSansMonoSC[
  UprightFont=NotoSansMonoCJKsc-Regular,
  BoldFont=NotoSansMonoCJKsc-Bold,
  ItalicFont=NotoSansMonoCJKsc-Regular,
  BoldItalicFont=NotoSansMonoCJKsc-Bold,
  ItalicFeatures=FakeSlant,
  BoldItalicFeatures=FakeSlant]{NotoSansMonoSC}

\newCJKfontfamily[NotoSansSCThin]\NotoSansSCThin[
  UprightFont=NotoSansCJKsc-Thin,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCLight]\NotoSansSCLight[
  UprightFont=NotoSansCJKsc-Light,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCDemiLight]\NotoSansSCDemiLight[
  UprightFont=NotoSansCJKsc-DemiLight,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCRegular]\NotoSansSCRegular[
  UprightFont=NotoSansCJKsc-Regular,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCMedium]\NotoSansSCMedium[
  UprightFont=NotoSansCJKsc-Medium,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCBold]\NotoSansSCBold[
  UprightFont=NotoSansCJKsc-Bold,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansSCBlack]\NotoSansSCBlack[
  UprightFont=NotoSansCJKsc-Black,
  AutoFakeSlant=true]{NotoSansSC}  

\newCJKfontfamily[NotoSansMonoSCRegular]\NotoSansMonoSCRegular[
  UprightFont=NotoSansMonoCJKsc-Regular,
  AutoFakeSlant=true]{NotoSansMonoSCRegular}

\newCJKfontfamily[NotoSansMonoSCBold]\NotoSansMonoSCBold[
  UprightFont=NotoSansMonoCJKsc-Bold,
  AutoFakeSlant=true]{NotoSansMonoSCBold}

\newCJKfontfamily[NotoSerifSC]\NotoSerifSC[
  UprightFont=NotoSerifCJKsc-Light,
  BoldFont=NotoSerifCJKsc-Bold,
  ItalicFont=NotoSerifCJKsc-Light,
  BoldItalicFont=NotoSerifCJKsc-Bold,
  ItalicFeatures=FakeSlant,
  BoldItalicFeatures=FakeSlant]{NotoSerifSC}

\newCJKfontfamily[NotoSerifSCThin]\NotoSerifSCThin[
  UprightFont=NotoSerifCJKsc-Thin,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCLight]\NotoSerifSCLight[
  UprightFont=NotoSerifCJKsc-Light,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCDemiLight]\NotoSerifSCDemiLight[
  UprightFont=NotoSerifCJKsc-DemiLight,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCRegular]\NotoSerifSCRegular[
  UprightFont=NotoSerifCJKsc-Regular,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCMedium]\NotoSerifSCMedium[
  UprightFont=NotoSerifCJKsc-Medium,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCBold]\NotoSerifSCBold[
  UprightFont=NotoSerifCJKsc-Bold,
  AutoFakeSlant=true]{NotoSerifSC}  

\newCJKfontfamily[NotoSerifSCBlack]\NotoSerifSCBlack[
  UprightFont=NotoSerifCJKsc-Black,
  AutoFakeSlant=true]{NotoSerifSC}  

\ifthenelse{\boolean{cjkfonts@default}}{

  \setCJKmainfont[
  	UprightFont={NotoSerifCJKsc-Light},
  	BoldFont={NotoSerifCJKsc-Bold},
  	ItalicFont={NotoSerifCJKsc-Light},
  	BoldItalicFont={NotoSerifCJKsc-Bold},
  	ItalicFeatures=FakeSlant,
  	BoldItalicFeatures=FakeSlant]{NotoSerifSC}
  
  \setCJKsansfont[
  	UprightFont={NotoSansCJKsc-Light},
  	BoldFont={NotoSansCJKsc-Bold},
  	ItalicFont={NotoSansCJKsc-Light},
  	BoldItalicFont={NotoSansCJKsc-Bold},
    ItalicFeatures=FakeSlant,
    BoldItalicFeatures=FakeSlant]{NotoSansSC}
  
  \setCJKmonofont[
  	UprightFont={NotoSansCJKsc-Light},
  	BoldFont={NotoSansCJKsc-Bold},
  	ItalicFont={NotoSansCJKsc-Light},
  	BoldItalicFont={NotoSansCJKsc-Bold},
    ItalicFeatures=FakeSlant,
    BoldItalicFeatures=FakeSlant]{NotoSansMonoSC}

}{}

%% This must be the last command
\endinput
